草庐IT

SQL PRIMARY KEY 约束

全部标签

mysql - MySQL 中的 CHECK 约束不起作用

首先我创建了一个类似的表CREATETABLECustomer(SDintegerCHECK(SD>0),Last_Namevarchar(30),First_Namevarchar(30));然后在该表中插入值INSERTINTOCustomervalues('-2','abc','zz');MySQL没有显示错误,它接受了这些值。 最佳答案 MySQL8.0.16是第一个支持CHECK约束的版本。阅读https://dev.mysql.com/doc/refman/8.0/en/create-table-check-constr

python - 检查 SQLAlchemy 中互斥列的约束

如果我有如下所示的SQLAlchemy声明式模型:classTest(Model):__tablename__='tests'id=Column(Integer,Sequence('test_id_seq'),primary_key=True)...Atest_id=Column(Integer,ForeignKey('Atests.id'),nullable=True)Btest_id=Column(Integer,ForeignKey('Btests.id'),nullable=True)Ctest_id=Column(Integer,ForeignKey('Ctests.id')

python - 检查 SQLAlchemy 中互斥列的约束

如果我有如下所示的SQLAlchemy声明式模型:classTest(Model):__tablename__='tests'id=Column(Integer,Sequence('test_id_seq'),primary_key=True)...Atest_id=Column(Integer,ForeignKey('Atests.id'),nullable=True)Btest_id=Column(Integer,ForeignKey('Btests.id'),nullable=True)Ctest_id=Column(Integer,ForeignKey('Ctests.id')

mysql - 我们所有的 MySQL 约束都变成了小写。什么会导致这种情况?

从数据库表到对象属性、列、数据库索引和约束,我们所做的一切都有驼峰式命名约定。我们已经在一个新项目上使用这些约定两个月了,一切进展顺利,昨晚突然之间,我们6个数据库中只有一个的所有关系从驼峰式转换为小写。重要的是要注意只有约束被转换——索引本身保持驼峰式。因此,如果我们有一个名为someColumn的列和另一个名为someTable.otherColumn的列,它是这样的:someColumn=>someTable.otherColumnONDELETECASCADEONUPDATECASCADE为此:someColumn=>sometable.otherColumnONDELETEC

mysql - 我们所有的 MySQL 约束都变成了小写。什么会导致这种情况?

从数据库表到对象属性、列、数据库索引和约束,我们所做的一切都有驼峰式命名约定。我们已经在一个新项目上使用这些约定两个月了,一切进展顺利,昨晚突然之间,我们6个数据库中只有一个的所有关系从驼峰式转换为小写。重要的是要注意只有约束被转换——索引本身保持驼峰式。因此,如果我们有一个名为someColumn的列和另一个名为someTable.otherColumn的列,它是这样的:someColumn=>someTable.otherColumnONDELETECASCADEONUPDATECASCADE为此:someColumn=>sometable.otherColumnONDELETEC

mysql - 查找外键约束失败的行

尝试将外键约束添加到两个非常大的表时,我收到了错误。SQLSTATE[23000]:Integrityconstraintviolation:1452Cannotaddorupdateachildrow:aforeignkeyconstraintfails这通常是由于主表中的某些数据不存在于外部表中,通常我会检查已知异常,如空值、超出范围值等,一旦处理好这些,我就能满足约束.然而这一次的问题更加微妙。我想知道有什么方法可以查询导致约束失败的所有行?? 最佳答案 假设你有下表,和FK关系。parent(parent_id(PK),na

mysql - 查找外键约束失败的行

尝试将外键约束添加到两个非常大的表时,我收到了错误。SQLSTATE[23000]:Integrityconstraintviolation:1452Cannotaddorupdateachildrow:aforeignkeyconstraintfails这通常是由于主表中的某些数据不存在于外部表中,通常我会检查已知异常,如空值、超出范围值等,一旦处理好这些,我就能满足约束.然而这一次的问题更加微妙。我想知道有什么方法可以查询导致约束失败的所有行?? 最佳答案 假设你有下表,和FK关系。parent(parent_id(PK),na

mysql - 在 phpMyAdmin 中添加约束

我觉得我很愚蠢,但是我在phpMyAdmin界面上找不到任何地方来为外键添加约束,例如级联删除我在这里和phpMyAdminwiki上寻找过类似的问题,但我找不到任何相关信息。我知道我可以通过查询界面执行此操作,但我想知道如何通过图形界面执行此操作。 最佳答案 首先,您的存储引擎应该是InnoDB。然后选择一个表并转到“结构”选项卡。在表格下方,您将看到“关系View”,单击它。您可以从那里添加约束。 关于mysql-在phpMyAdmin中添加约束,我们在StackOverflow上找

mysql - 在 phpMyAdmin 中添加约束

我觉得我很愚蠢,但是我在phpMyAdmin界面上找不到任何地方来为外键添加约束,例如级联删除我在这里和phpMyAdminwiki上寻找过类似的问题,但我找不到任何相关信息。我知道我可以通过查询界面执行此操作,但我想知道如何通过图形界面执行此操作。 最佳答案 首先,您的存储引擎应该是InnoDB。然后选择一个表并转到“结构”选项卡。在表格下方,您将看到“关系View”,单击它。您可以从那里添加约束。 关于mysql-在phpMyAdmin中添加约束,我们在StackOverflow上找

sql - 如何在 bool MySQL 列上创建 "unique"约束?

我想在一个名为is_default的MySQL表中添加一个BOOLEAN列。在此列中,只有一条记录可以将is_default设置为true。如何使用MySQL将此约束添加到我的列?谢谢!更新如果不是我应该添加的约束。我们如何处理DB上的此类问题? 最佳答案 我认为这不是模拟单个默认值情况的最佳方式。相反,我会保留IsDefault列并创建一个单独的表,其中一行只有构成主表主键的列。在此表中,您放置标识默认记录的PK值。这会大大减少存储空间,并避免更新时暂时没有默认值(或者暂时有两个默认值)的更新问题。您有多种选择来确保默认表中只有一